package org.aplombh.java.awcing.basic.basics.doublePointer;

import java.util.Scanner;

import static java.lang.Math.max;

/**
 * 给定一个长度为 n 的整数序列，请找出最长的不包含重复的数的连续区间，输出它的长度。
 * <p>
 * 输入格式
 * 第一行包含整数 n。
 * <p>
 * 第二行包含 n 个整数（均在 0∼105 范围内），表示整数序列。
 * <p>
 * 输出格式
 * 共一行，包含一个整数，表示最长的不包含重复的数的连续区间的长度。
 * <p>
 * 数据范围
 * 1≤n≤105
 * 输入样例：
 * 5
 * 1 2 2 3 5
 * 输出样例：
 * 3
 */
public class LongestContinuousNonRepeatingSubsequence {
    // Max number and max capacity
    private final static int N = 100010;

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int[] a = new int[N];
        int[] s = new int[N];
        int res = 0;
        int n = scanner.nextInt();
        for (int i = 0; i < n; i++)
            a[i] = scanner.nextInt();

        for (int i = 0, j = 0; i < n; i++) {
            //  Store the number of current digits
            s[a[i]]++;
            // If it's greater than 1, it's a repeated number
            while (s[a[i]] > 1) {
                s[a[j]]--;
                j++;
            }
            res = max(res, i - j + 1);
        }
        System.out.println(res);
    }
}
